{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 15.3. Analyzing real-valued functions"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sympy import *\n",
    "init_printing()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "podoc": {
     "output_text": "(x, z)"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "(x, z)"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "var('x z')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "f = 1 / (1 + x**2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "podoc": {
     "output_text": "1/2"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAACoAAACoBAMAAABklWG7AAAAMFBMVEX///+6uroiIiJmZmZUVFSI\niIiYmJh2dnaqqqoQEBDMzMzc3NwyMjJERETu7u4AAAA2QFqhAAAAAXRSTlMAQObYZgAAAAlwSFlz\nAAAOxAAADsQBlSsOGwAAAfhJREFUSMftlr9Lw1AQx59af1arf4DQguAktkNxdXQRFAQ30cUiOOju\nUAeHDKIgKKhDuurSDoKogw7dBFOcBYuDIII/ahWr0fM0uZdr3sNJECXf6fhwyf14yb0TQipylhOq\ntmBehY0AEwqsN1UaXgDw0abkKYBCQwgqc5aP1q339GWEpYsW0IAG9NdpHGBYpTgJZtX5gL/4RhUx\njMmxr1HQNTplZGhkANfRt1RsH9zQ9Lre142vQIH+lECnH6CB/qEuB82V/LQPdjon3l0FdwDySRzh\nsMpgi2l/jvRFxMceXXbn/AziDukKm2QAvBC9qtDMjeL6RvbQvdzf0LlAzyXkoonUdWmDoozbD1By\nrNuyl00WnTNuXra8apqBbhh8yibahjT2ZZ2z/RKXVbijK4zSEQ1ov0sao+UU7VenCObbJGuOsp54\nb8AIT0KJJnYHcmpmXO1IEwrN8r5ruuO7aJ8V2MBvSKlapOoNOc5SF/yA1Lywhjc1g6guVsQEu6jQ\nVp0rFmYLXQkFXawHFbZoN5A9TVkiEtc0FtPa0Pxa5xXNOhGCXteqWfJoukS1tr+zbeeEzMM779/y\n2rIse1HD2pKWfc+yZltUYdgssFOiYi7e+JZFeVtrhqNUasQC9iF6os4PVdGy9yUzPdJ0qNKzXA65\nXuVyyPXZhg8BKFx4yWuG6QAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "1/2"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "f.subs(x, 1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "podoc": {
     "output_text": "Output"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\nAAAASUVORK5CYII=\n",
      "text/plain": [
       "Output"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "diff(f, x)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "podoc": {
     "output_text": "0"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAACQAAAA5BAMAAACsZpTuAAAAMFBMVEX///+qqqoiIiLc3NxmZmaI\niIgQEBDu7u66urpEREQyMjJUVFR2dnaYmJjMzMwAAABcNhdRAAAAAXRSTlMAQObYZgAAAAlwSFlz\nAAAOxAAADsQBlSsOGwAAAY1JREFUOMuNlLtOAkEUhkdBUcTF2gbfwC1tjJR2kvgAUlu4xFYTaa12\ne030DdbOhGatjB08gIm+gSC6ogv8zpy57O5ggtPMzMdwrv9Zxmg5z52rJ5Zd5x74Sl5TsgTsuzuP\nSFqalELci/0IJxqdYkz7CrCh0Dbq8uBjKg9reFe/VRC7dKhhok0AAe0emhp1MRLbOvCg0Z60sQy0\nNeJnEe4bYGIugpwfGIeURp+8fBu0AAwo5MQghy4VqHQoWwgrq8BnWhNeopbwO8mhNrsgi3rxUjZ4\n9jp9WRTc8aQtFPBSWmiLJ49hikLwskQ26v+Fbmz0NR/RLZyH6PZv81MLRXaOfd6gGTRTiSZ7sdGt\nqOooV+hA9H+Qa0edVe0O9Vg520feWrii2x9ZAYCUkZPJj5ZBKqaxTCsruSHNBMyclEWkTIiip1FV\nnotCBkyPB/2jIPVJK1Ixdk2sJaipWETcMg7lCBSMMd+895WAHegpZI4nn9Uy2j5DfMjYJuJ2WqZL\nnqiHuJH9Kux2vONr9eYXXYNOUewc7uIAAAAASUVORK5CYII=\n",
      "text/plain": [
       "0"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "limit(f, x, oo)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "podoc": {
     "output_text": "Output"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\nAAAASUVORK5CYII=\n",
      "text/plain": [
       "Output"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "series(f, x0=0, n=9)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "podoc": {
     "output_text": "Pi"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAC4AAAAlBAMAAADPUMbHAAAAMFBMVEX///9UVFSIiIiYmJhERETM\nzMy6uroQEBBmZmbu7u6qqqoiIiIyMjJ2dnbc3NwAAACfwjG3AAAAAXRSTlMAQObYZgAAAAlwSFlz\nAAAOxAAADsQBlSsOGwAAAUxJREFUKM9lkjtSw0AMhhcwD4c44QbmBuQGyQwHSG5gbuBUNCnsGzgN\ndThCOgoXZiioOQAz0FHyCMTkxc+uduWsNyokzedd7S9ZQkhrPaNuq1uF/QyuDRV/28H4kPhoFyOV\nPJJxlN8hl1aUyueXqnqCh4EQjZUq2ZwJNg/XKuz9Kt/+qfjF95jIUvlowbiFHsWYSHdYlVnpmE2V\nD3vM4z8dEyVNFCnzsEPhENQ6OsxvdAgw3n617HSt/D6uHB5tqAkMHJ7N6RZeHQ6SP6FXLGvgnkTD\nOe7hiWbi8okWkrn8RRfuu/UTki8KR88BNlqVo7+JueH1fiNaAOED5zUe6p8j+ZmN+VwLmNo8MO/5\neqEqO0bJ95Y27+LTTI8TYdqZcVJaWC7ognXZDXjQU1ZjQrrl71U7sdl8fpbH2K5u6lNfJjup1Q9G\nPBW//2iyf4Ob3QwW68rpAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "Pi"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "integrate(f, (x, -oo, oo))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "podoc": {
     "output_text": "atan(x)"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\nRU5ErkJggg==\n",
      "text/plain": [
       "atan(x)"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "integrate(f, x)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "podoc": {
     "output_text": "Output"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPQAAABKBAMAAAB+wWTIAAAAMFBMVEX///9UVFSIiIiYmJhERETM\nzMy6uroQEBBmZmbu7u6qqqoiIiIyMjJ2dnbc3NwAAACfwjG3AAAAAXRSTlMAQObYZgAAAAlwSFlz\nAAAOxAAADsQBlSsOGwAABPdJREFUaN7FWk1oG0cUlmVZ1irSyoHSFtriXEJJL9Kxh1KltDkEAvKh\nkFOxaQ9JCEQh4JrgkPW5UCRCQg8p2JfSHAoySdpSHFhRSnNIQLm2KUjkEB8SsFXbWTva5MvO786s\nSkzcnc07aBdW4s2b973vffNWqVR8dvI2bv2deh32Poht95L3/AjXzzy8D/ybuOcx/EwuPwKHk3a9\nutkkF9vBZtKuO212nQYOJOs5jya7KQLPk3Wd6fMbC3iWrOtFbPO7GrxkXYcpLkPsfUJWBzjOqsBU\noq7XgAl21wJmEnW9D1h6TVFbtRv8rrtLrj/CEXLJGSjBDgbsJvsWQvOO8scnwADZOht/+KKurRpU\neyqoB/QLthM/IAI22+GdTLPnEo6BLaSOb5vgFtzjfUQ1ryLScfOYA++Yif7W5am+iutTKZsQ29pZ\nler/ClZ17TZ8E20b5xmfEsmQJszeaoePR7iQ6P4Wv+txeFQhpemlsBF8NCbCx2m2z0XPgIyqYZal\nfIt+EnB17g1nZTZ+zzkMWDyfU26rkjQLmlO2fS9B511E7UJPA9lRjV4mSPajFWx19pLpDIatoha1\nVq42eZYeovTVPam37J25qN1sqkFXdHrpkRxEXGcDRjHAZDp8xj26URHXZRNKvevrPavep+U2E0Hi\njImgWdV+KIBXIz2jpCPcqs2aCJpjzO0JZtuhrjVd/mjQNBE09wFRvlim/URF1ZjDq29/rEHzlpwd\nyCa2QNtkW1WuXK+Pxnk8KnocycW+LLUluoB1tbvwLfhuI86gL3IeqYviYSKtJAQKZRMOhzH3fKzq\nJKKF0qwpl9AP4e1ufvJBAEK7O0zs/0ciRLXQOBNpBUWhFujzP95wleW8zB6868x/8wpBi9xW2Rpy\nXDHRQt88dYl9RzQQ+59IRxiE22HfD4QV8MvuZy5py0KGtRllSx2WJtv8mHxF0J7VGOpGUk4Fz/yP\nSW4qL3fdUn7MVYnLGdOVv12kKJhEuA+rw41wPUyhT2rGdrdeOfsnONKPn5Pro5wz2rlwSDaxYRME\n9FicXacNSEiWpvmVX7ESmOuRz5VPxaocUSkjMCDkLAe/B3uap/RX2IhmcElBSOxTEHxNw6I8U9rS\n9YSci+R3w9lerMwGXiW6s9M7kVS0ZV3E3+BtXnX1HalepTnhKT0DA/vNW1yDEsHkYZ2hZGtb68fv\nus4Z16H15C7o8xF59O9sxe96ssIbKUWwBqZOmOrLJgTsFbG5zXABIdUcEPVtcOa6zx/C8QhEu7vk\nmgha1tEz5m1Kmw8E67GufPUO8KfB4VPjCZt+9f6rGfkHTc692OxlUR15Ba3Uv3v3s7e//cHoxC3P\nsFyHDvD1BIZ9Gda8y6prQFPQpmyRQbsBbfZmEteKnmyySUhTc11JwLXjcxnVU/pKIiPeUd6XVWfE\ndQJBF/CEu55RNzyJlxjTrIws7R0VxHTZqE0yvWBJDc0S75v3LKK15cmBVZoatW2GxoscXpbGXy0N\nZlfNvKEd54CyoJ6FS+pLDMtdNuK6Ks6cUA+fOSjC4XsTs1wKqA1x46laNQTdmHPRiOeseF1BDoGK\nTClDqvKqb+ZlYUa2qK7WMQpSC5821UjWJJPUlZM17djM40/szwBGUCagXNJb9Aj8pZT1ZQ03TDFK\nXf6rIhd5FXoamAtOP28aI7PivGBuqxbhrC/u4NZ7hlrnC0nUX1k6KAQrAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "Output"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fourier_transform(f, x, z)"
   ]
  }
 ],
 "metadata": {},
 "nbformat": 4,
 "nbformat_minor": 2
}
